package com.roc.service;

import java.io.File;
import java.util.List;
import java.util.Map;

import com.roc.bean.ApplyChannel;
import com.roc.pojo.Operators;
import com.roc.pojo.TblSettleItem;
import com.roc.web.action.settlemgr.SettlementApplyMoneySearchCondition;

public interface IApplyMoneyService {
	/**
	 * 批量申请出款申请
	 * @throws ServiceException
	 */
	public String applySettlementMoney(SettlementApplyMoneySearchCondition condition,Operators op) throws ServiceException; 
	/**
	 * 选择部分出款申请
	 * @param condition
	 * @param id
	 * @param op
	 * @return
	 * @throws ServiceException
	 */
	public String applySettlementMoneySimple(SettlementApplyMoneySearchCondition condition,String[] id,Operators op)throws ServiceException;
	/**
	 * 出款通道
	 * @return
	 * @throws ServiceException
	 */
	public List<ApplyChannel> selectChannelList()throws ServiceException;
	/**
	 * 挂起出款
	 * @param condition
	 * @param merchantsn
	 * @param op
	 * @return
	 * @throws ServiceException
	 */
	public String hangPaySettlement(String[] merchantsn,Operators op)throws ServiceException;
	/**
	 * 释放出款
	 * @param condition
	 * @param merchantsn
	 * @param op
	 * @return
	 * @throws ServiceException
	 */
	public String freePaySettlement(String[] merchantsn,Operators op)throws ServiceException;
	/**
	 * 批量导入挂起款项
	 * @param file
	 * @param op
	 * @return
	 * @throws ServiceException
	 */
	public Map<String,Object> insertPaySettlement(File file, Operators op)throws ServiceException;
	
	/**
	 * 批量导入挂起款项收回
	 * @param file
	 * @param op
	 * @return
	 * @throws ServiceException
	 */
	public Map<String,Object> insertPayFreeSettlement(File file, Operators op)throws ServiceException;
	
	/**
	 * 处理金额拼凑
	 * @param searchCondition
	 * @return
	 * @throws ServiceException
	 */
	public Map<String,Object> handleCombineAmt(SettlementApplyMoneySearchCondition searchCondition,Operators op)throws ServiceException;
	/**
	 * 清空原有标记
	 * @param op
	 * @throws ServiceException
	 */
	public void clearOriginCombie(SettlementApplyMoneySearchCondition searchCondition,Operators op) throws ServiceException;
	/**
	 * 选择导出
	 * @param condition
	 * @param id
	 * @param op
	 * @return
	 * @throws ServiceException
	 */
	public String selectExportUpdate(SettlementApplyMoneySearchCondition condition,String[] id, Operators op) throws ServiceException;
	
	/**
	 * 批量导出
	 * @param condition
	 * @param op
	 * @return
	 * @throws ServiceException
	 */
	public String batchExportUpdate(SettlementApplyMoneySearchCondition condition,Operators op) throws ServiceException;
	/**
	 * 获取选取的汇出列表详细信息
	 * @param id
	 * @return
	 * @throws ServiceException
	 */
	public List<TblSettleItem> selectBySerialNo(String[] id)throws ServiceException;
	/**
	 * 上海银行分支
	 * @param branchBankName
	 * @param branchBankCode
	 * @return
	 * @throws ServiceException
	 */
	public Object[] findMainBank(String branchBankName,String branchBankCode)throws ServiceException;
}
